package com.itsitio.dbloader.modelo.dato;

/**
 * Dato	
 * @author 
 *
 */


import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;


@Entity
public class Dato implements Comparable<Dato>{

	public static final int DISPONIBILIDAD_VIAJE = 1;
	public static final int ZONA_RESIDENCIA = 2;
	public static final int LIDERAZGO_TECNICO = 3;
	public static final int MAGNITUD_LT = 4;
	public static final int LIDERAZGO_PROYECTO = 5;
	public static final int MAGNITUD_LP = 6;
	public static final int INSTITUCION = 7;	//TEC
	public static final int NIVELESTUDIO = 8;	//TEC
	public static final int ESTATUSESTUDIO = 9;	//TEC
	public static final int TIPOCERTIFICACION = 10;	//TEC
	public static final int MODULOCERTIFICACION = 11;	//TEC
	


	public static int getNivelestudio() {
		return NIVELESTUDIO;
	}

	public static int getEstatusestudio() {
		return ESTATUSESTUDIO;
	}

	public static int getTipocertificacion() {
		return TIPOCERTIFICACION;
	}

	public static int getModulocertificacion() {
		return MODULOCERTIFICACION;
	}

	@Id
	@GeneratedValue
	private long id;
	
	private int tipo;
	
	private String valor;

	private boolean activo;
	
	public Dato() {}

	public Dato(int tipo, String valor) {
		this.tipo = tipo;
		this.valor = valor;
		this.activo = true;
	}
	
	@Override
	public boolean equals(Object obj) {
		Dato otro = (Dato) obj;
		return otro.id == this.id;
	}
	
	@Override
	public String toString() {
		return valor;
	}
	
	public int getTipo() {
		return tipo;
	}
	//TEC
	public static int getInstitucion() {
		return INSTITUCION;
	}
	
	public static int getDisponibilidadViaje() {
		return DISPONIBILIDAD_VIAJE;
	}

	public static int getZonaResidencia() {
		return ZONA_RESIDENCIA;
	}

	public static int getLiderazgoTecnico() {
		return LIDERAZGO_TECNICO;
	}

	public static int getMagnitudLt() {
		return MAGNITUD_LT;
	}

	public static int getLiderazgoProyecto() {
		return LIDERAZGO_PROYECTO;
	}

	public static int getMagnitudLp() {
		return MAGNITUD_LP;
	}

	public void setId(long id) {
		this.id = id;
	}

	public void setTipo(int tipo) {
		this.tipo = tipo;
	}

	public String getValor() {
		return valor;
	}

	public void setValor(String valor) {
		this.valor = valor;
	}

	public long getId() {
		return id;
	}

	public boolean isActivo() {
		return activo;
	}

	public void setActivo(boolean activo) {
		this.activo = activo;
	}

	@Override
	public int compareTo(Dato o) {
		
        if(this.valor.compareToIgnoreCase(o.valor) == 0) {
            if(this.valor.compareToIgnoreCase(o.valor) == 0) {
                return this.valor.compareTo(o.valor);
            } else {
                return this.valor.compareToIgnoreCase(o.valor);
            }
        } else {
            return this.valor.compareToIgnoreCase(o.valor);
        }
	}
	
	
}
